Vicejazycna aplikace

Otázka od: Josef Straka

11. 11. 2003 23:28

D5Prof SP1, W98SE

Prijemny den,
 chci udelat vicejazycnou aplikaci. napadlo me, ze bych mohl vytvorit ini
soubory s jednotlivymi jazykovymi verzemi. Tam by se skupina jmenovala
stejne jako Form, nazev by byl Name komponenty a hodnota vlastni prekladane
slovo, tady Caption. Asi takhle

[Form1]
Form1=My program
Soubor1=File
Konec1=End
Nastaven1=Setting

Pak bych udelal jednoduchy cyklus ve FormCreate, kde bych nacetl vsechny
Caption komponent, abych to nemusel otrocky vypisovat. Myslenka je takova,
ze by to projelo vsechny komponenty a podle Name by to naslo prislusny
Caption v ini souboru. Asi takhle.

for A:= 0 to Form1.Components.Count -1 do
Form1.Components[A].Caption :=
ini2.ReadString('Form1',Form1.Components[A].Name,'...'));

Jenze ouha, myslenka jiste dobra, ale provedeni neni uz tak dobre, jak by
rekl klasik Cimrman. Form1.Components[A].????? nema vlastnost Caption.

Muzete nekdo poradit, jak priradit takto komponentam Caption? Takto bych ty
vicejazykove verze vyresil jednim radkem. Zatim mi to funguje pro kazdou
komponentu jeden radek, coz je drbani levou rukou za pravym uchem.

Diky a jsem s pozdravem,
letos jsem slysel zjara kosa jiz po jednatricate  
Straka Josef
mail: strakajosef@quick.cz
www: http://strakaj.zde.cz






----------
* www.inMail.sk - Vasa emailova adresa na cely zivot ZDARMA
* Mail neobsahuje virusy. Zkontrolovane antivirusom NOD32 (www.eset.sk)
* www.SlovakNET.sk - profesionalny webhosting, domena .SK ZADARMO
* Zoner Media Explorer 5 - stiahnite si pomocnika pre digitalnu fotografiu
(zme.zoner.sk)

Odpovedá: Pavel Kubal

31. 10. 2002 11:52

Hello Zbysek,

Thursday, October 31, 2002, 10:41:59 AM, you wrote:

ZH> On 31 Oct 2002 at 9:48, Ing. Jan Dvorak wrote:

>> Vzorem pro takovou lokalizaci je program Windows Commander
>> autora Christian Ghisler, kde ke kazde lokalizaci jsou
>> dodany dva textove soubory s ocislovanymi nebo jinak
>> oznacenymi prelozenymi texty. Temi se pri spusteni programu
>> nahradi interni anglicke texty nejakym, pro mne dosud
>> neznamym postupem.
>> Pokud se najde v konferenci nekdo, kdo by mohl objasnit
>> mechanismus a metody takoveto lokalizace nebo prijit s
>> nejakym jinym nametem na provedeni efektivni lokalizace,
>> budu mu vdecen za odpoved.

ZH> Ghisleruv zpusob moc efektivni neni. WC ma sadu externich souboru, ve
ZH> kterych jsou preklady. V programu tedy musi udelat to, ze texty vola
ZH> z techto souboru. Patrne si pri zmene jazyka nacte celou tabulku
ZH> prekladu do pameti, a pri kazdem otevreni noveho okna prepise vsechny
ZH> texty v okne, nejspis nejak takto:

ZH> Label1.Caption := NactiText(1);
ZH> Button1.Caption := NactiText(2);
ZH> ...

ZH> Je to sice jednoduche, ale pracne, a je problem pridavat nove texty.
ZH> Navic to ma tu chybu, kdyz je text prilis dlouhy proti originalu a
ZH> mista malo, text se nezobrazi cely. Vyhodou je, ze se prekladem
ZH> zabyvas jen tehdy, kdyz pridas do programu novy text nebo nejaky
ZH> zmenis.

ZH> Efektivnejsi je napsat cely program v jednom jazyce, a pak pridavat
ZH> jen lokalizovane (dll) soubory. Ukazku najdes v Demos\RichEdit.
ZH> Delphi si umi natahnout tu spravnou lokalizaci, a pak ji pouzivat. Je
ZH> vsak treba davat pozor na urcity druh komponent, VCL nezvlada jejich
ZH> reload za behu programu. Pokud pouzijes vhodny lokalizacni nastroj,
ZH> pak prekladas jen napoprve, dalsi lokalizace vkladaji preklady na
ZH> spravne misto automaticky, muzes si nastavit i sirku komponent pro
ZH> ruzne dlouhe preklady a podobne. Kompilovat knihovnu prekladu je
ZH> nutne po kazde kompilaci programu, ale to je vetsinou automaticka
ZH> rutina.

ZH> S pozdravem

ZH> Zbysek Hlinka
ZH> E-mail: hlinka@hlinka.cz, localizator@localizator.com
ZH> Phone: +420 603 551 282


To je taky moznost, ale podle me je lepsi ukladat to do textovyho
souboru, protoze pak ti muze udelat novou jazykovou verzi prakticky
kdokoliv. Treba do rumunstiny to asi sam prekladat nebudes a co kdyz
si treba naky rumun stahne anglickej textak a prelozi to? Preklad je
hotovej a autora programu to nestalo ani minutku 

--
Best regards,
 Pavel mailto:kubal.p@seznam.cz

Odpovedá: Pavel Kubal

31. 10. 2002 12:08

Hello Zbysek,

Thursday, October 31, 2002, 11:30:12 AM, you wrote:

ZH> On 31 Oct 2002 at 11:13, Pavel Kubal wrote:

>> To je taky moznost, ale podle me je lepsi ukladat to do textovyho
>> souboru, protoze pak ti muze udelat novou jazykovou verzi prakticky
>> kdokoliv. Treba do rumunstiny to asi sam prekladat nebudes a co kdyz
>> si treba naky rumun stahne anglickej textak a prelozi to? Preklad je
>> hotovej a autora programu to nestalo ani minutku 

ZH> Zadny problem, s mym Lokalizatorem je to stejne.   Je to osetrene i
ZH> licencne.  

ZH> S pozdravem

ZH> Zbysek Hlinka
ZH> E-mail: hlinka@hlinka.cz, localizator@localizator.com
ZH> Phone: +420 603 551 282


mensi reklama ....

--
Best regards,
 Pavel mailto:kubal.p@seznam.cz

Odpovedá: Petr Fejfar

31. 10. 2002 10:47

From: "Ing. Jan Dvorak" <dvorak@szu.cz>


> Pokud se najde v konferenci nekdo,
> kdo by mohl objasnit mechanismus
> a metody takoveto lokalizace nebo prijit s

V run-time musis pri konstrukci formulare zajistit
nastaveni odpovidajicich property. To muzes
udelat bud rucne napr.

    Label1.Caption := LoadText('lab1capt');
    Label1.Hint := LoadText('lab1hint');

a nebo to muzes nejak zautomatizovat napr.
vhodnym pojmenovanim textu napr.

    <JmenoFormu>.<JmenoPrvku>.<TypTextu>

napr.

    'Form1.Label1.Caption'

a pak projit vsechna controls na formu
a nacist pro ne vsechny odpovidajici texty.

***

U ostatnich textu jako chybova hlaseni, dotazy aj.
primo zavolas LoadText(xxxx).

***

Zbyva otazka, jak efektivne implementovat ten message pool a metodu
LoadText(xxxx). Ale to zalezi
na poctu textu popr. dalsich na pozadavcich.


HTH, pf



---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.408 / Virus Database: 230 - Release Date: 24.10.2002

Odpovedá: Jan Sebelík

31. 10. 2002 12:05

> Odesílatel: Ing. Jan Dvorak <dvorak@szu.cz>
> Jednu svou nekomercni aplikaci naprogramovanou v Delphi
> potrebuji lokalizovat do vice jazyku
Zbysek Hlinka
hlinka@hlinka.cz, localizator@localizator.com
www.localizator.com (?)

Honza
=========================================
= HAES - RNDr. Jan Sebelik
= http://www.haes.cz
= Skolici a konzultacni stredisko pro Delphi a Win32
= Vojtiskova 206
= 507 81 Lazne Belohrad
= tel. 493 792 931 (mobil 776 347735)
=========================================

Odpovedá: Zbysek Hlinka

31. 10. 2002 10:49

On 31 Oct 2002 at 9:48, Ing. Jan Dvorak wrote:

> Vzorem pro takovou lokalizaci je program Windows Commander
> autora Christian Ghisler, kde ke kazde lokalizaci jsou
> dodany dva textove soubory s ocislovanymi nebo jinak
> oznacenymi prelozenymi texty. Temi se pri spusteni programu
> nahradi interni anglicke texty nejakym, pro mne dosud
> neznamym postupem.
> Pokud se najde v konferenci nekdo, kdo by mohl objasnit
> mechanismus a metody takoveto lokalizace nebo prijit s
> nejakym jinym nametem na provedeni efektivni lokalizace,
> budu mu vdecen za odpoved.

Ghisleruv zpusob moc efektivni neni. WC ma sadu externich souboru, ve
kterych jsou preklady. V programu tedy musi udelat to, ze texty vola
z techto souboru. Patrne si pri zmene jazyka nacte celou tabulku
prekladu do pameti, a pri kazdem otevreni noveho okna prepise vsechny
texty v okne, nejspis nejak takto:

Label1.Caption := NactiText(1);
Button1.Caption := NactiText(2);
...

Je to sice jednoduche, ale pracne, a je problem pridavat nove texty.
Navic to ma tu chybu, kdyz je text prilis dlouhy proti originalu a
mista malo, text se nezobrazi cely. Vyhodou je, ze se prekladem
zabyvas jen tehdy, kdyz pridas do programu novy text nebo nejaky
zmenis.

Efektivnejsi je napsat cely program v jednom jazyce, a pak pridavat
jen lokalizovane (dll) soubory. Ukazku najdes v Demos\RichEdit.
Delphi si umi natahnout tu spravnou lokalizaci, a pak ji pouzivat. Je
vsak treba davat pozor na urcity druh komponent, VCL nezvlada jejich
reload za behu programu. Pokud pouzijes vhodny lokalizacni nastroj,
pak prekladas jen napoprve, dalsi lokalizace vkladaji preklady na
spravne misto automaticky, muzes si nastavit i sirku komponent pro
ruzne dlouhe preklady a podobne. Kompilovat knihovnu prekladu je
nutne po kazde kompilaci programu, ale to je vetsinou automaticka
rutina.

S pozdravem

Zbysek Hlinka
E-mail: hlinka@hlinka.cz, localizator@localizator.com
Phone: +420 603 551 282

Odpovedá: Martin Kleiner

31. 10. 2002 12:26

Ja si naopak myslim, ze metoda lokalizace pomoci textovych souboru je
narozdil od DLL velice efektivni.
Oproti DLL ma spoustu vyhod:
-nemusi se kompilovat
-jsou nezavisle na OS
-muze je napsat a zverejnit prakticky kdokoli, kdo vlastni textovy editor

Pokud se podivate na progresivne napsane aplikace popripade i operacni
systemy tak zjistite, ze trend je (a myslim ze spravny) vyclenit konfiguraci
mimo aplikaci (podivejte se treba na linux a jeho aplikace).
A lokalizace je v podstate take konfigurace.
Myslim ze je obrovska vyhoda, kdyz aplikace jze prizpusobit uzivateli bez
nutnosti vlastnit licenci na programovaci jazyk.

Ja ve svych aplikacich se snazim dusledne oddelit logiku aplikace od
konfigurace a pouzivam k tomu textove soubory.
Mam s tim jen nejlepsi zkusenosti a mnohokrat se mi to vyplatilo (hlavne z
duvodu casu pro udrzbu)

Martin Kleiner

----- Original Message -----
From: "Zbysek Hlinka" <hlinka@hlinka.cz>

> Ghisleruv zpusob moc efektivni neni. ...


Odpovedá: Petr Fejfar

31. 10. 2002 12:24

From: "Martin Kleiner" <mkleiner@seznam.cz>

> Ja ve svych aplikacich se snazim dusledne oddelit logiku aplikace od
> konfigurace a pouzivam k tomu textove soubory.
> Mam s tim jen nejlepsi zkusenosti a mnohokrat se mi to vyplatilo (hlavne z
> duvodu casu pro udrzbu)

Take preferuji "open" lokalizaci, protoze u aplikaci, kde jsme texty
davaly do DLL, jsme s tim nakonec meli jen zbytecnou praci,
kterou v pripade textovych souboru mohou za nas udelat jini,
takze to bohate vykompenzuje vyssi pracnost pri vyvoji.

A i prekladatelum tim, ze u textovych souboru maji bezprostredni
zpetnou vazbu, se to podle nasi zkusenosti lepe preklada.


Bye, pf




---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.408 / Virus Database: 230 - Release Date: 24.10.2002

Odpovedá: Zbysek Hlinka

31. 10. 2002 13:51

On 31 Oct 2002 at 12:02, Martin Kleiner wrote:

> Ja si naopak myslim, ze metoda lokalizace pomoci textovych souboru je
> narozdil od DLL velice efektivni. Oproti DLL ma spoustu vyhod:
> -nemusi se kompilovat

Nepodstatna rutinka.

> -jsou nezavisle na OS

  To ano.

> -muze je napsat a zverejnit prakticky kdokoli, kdo vlastni textovy
> editor

Jiste. Nevyhody jsem uz vypsal. Kazdy si tedy musi zvazit sam, ktere
vyhody a nevyhody jsou pro nej podstatne.

> Pokud se podivate na progresivne napsane aplikace popripade i operacni
> systemy tak zjistite, ze trend je (a myslim ze spravny) vyclenit
> konfiguraci mimo aplikaci (podivejte se treba na linux a jeho
> aplikace). A lokalizace je v podstate take konfigurace. Myslim ze je
> obrovska vyhoda, kdyz aplikace jze prizpusobit uzivateli bez nutnosti
> vlastnit licenci na programovaci jazyk.

To jde s Lokalizatorem take. Ale doporucuji pozornosti .NET, tam je
to udelane jinak a v podstate se tam snoubi vyhody obou pristupu,
prozatim s vyjimkou nezavislosti na OS.

S pozdravem

Zbysek Hlinka
E-mail: hlinka@hlinka.cz, localizator@localizator.com
Phone: +420 603 551 282

Odpovedá: Ing. Jan Dvorak

31. 10. 2002 12:29

Localizator prirozene zkousim, je to jedno mozne reseni.
Vyhodnejsi se mi jevi nechat prelozit texty navesti, hlaseni
atd. samotne uzivatele uz vzhledem k tomu, ze nemam a ani
nemohu mit na pocitaci nainstalovany podpory vsech kodovych
stranek.
Ing. Jan Dvorak

> > potrebuji lokalizovat do vice jazyku
> Zbysek Hlinka
> hlinka@hlinka.cz, localizator@localizator.com
> www.localizator.com (?)
>
> Honza
> =========================================
> = HAES - RNDr. Jan Sebelik

Odpovedá: Petr Vones

31. 10. 2002 12:43

From: "Petr Fejfar" <development@callnet.cz>
> Take preferuji "open" lokalizaci, protoze u aplikaci, kde jsme texty
> davaly do DLL, jsme s tim nakonec meli jen zbytecnou praci,
> kterou v pripade textovych souboru mohou za nas udelat jini,
> takze to bohate vykompenzuje vyssi pracnost pri vyvoji.

Asi by bylo dobre oddelit format souboru pro lokalizaci a pak vlastni pouziti
techto dat v aplikaci. Nikdo asi nebude primo editovat DLL v Notepadu   a
napriklad ten system lokalizace ktery je v Delphi umoznuje vsechny texty
exportovat do XML, tento soubor prelozit (treba i do vice jazyku) a pouzit jej
jako slovnik. Pri prekladu se pak vytvori resource only DLL s pouzitim techto
dat. Zbyskouv Lokalizator je taky zalozen na stejnem principu. Samozrejme lze
vybudovat ruzne dalsi systemy zalozene treba na RTTI, ale pokazde je tam
problem jak rozume lokalizovat DFM aby to nebyla nejaka hruza. V Delphi 6+ je
k dispozici i editor kterym muze nekdo jiny provadet preklad souboru pro
lokalizaci, aniz by si musel instalovat cele Delphi.

Take zalezi na tom o jakou jde aplikaci, pokud je to nejaky server ktery ma
poskytovat pouze nejake hlaseni v ruznych jazycich (pak se asi nehodi vyse
popsane reseni) tak je to neco uplne jineho nez typicka GUI aplikace ktera se
preklada cela.

Petr Vones

Odpovedá: Martin Kleiner

31. 10. 2002 13:31

Podle meho nazoru neni pro uzivatele nutnost vlastnit licenci na
programovaci jazyk "nepodstatna rutinka".
Navic si nemyslim, ze pokud potrebuji lokalizovat aplikaci, tak musim byt
zrovna programator.

Martin Kleiner

On 31 Oct 2002 at 12:02, Martin Kleiner wrote:
>> Ja si naopak myslim, ze metoda lokalizace pomoci textovych souboru je
>> narozdil od DLL velice efektivni. Oproti DLL ma spoustu vyhod:
>> -nemusi se kompilovat

From: "Zbysek Hlinka" <hlinka@hlinka.cz>
>> Nepodstatna rutinka.

Odpovedá: Pavel Mattivi

31. 10. 2002 15:26

----- Original Message -----
From: "Martin Kleiner" <mkleiner@seznam.cz>
To: "Konference Delphi2" <delphi-l@clexpert.cz>
Sent: Thursday, October 31, 2002 12:02 PM
Subject: Re: Vicejazycna aplikace


> Ja si naopak myslim, ze metoda lokalizace pomoci textovych souboru je
> narozdil od DLL velice efektivni.

podobne jako napr. ulozit vse do databaze, pokud jiz nejakou v aplikaci
pouzivam.

Pavel

Odpovedá: Zbysek Hlinka

31. 10. 2002 14:50

On 31 Oct 2002 at 12:46, Martin Kleiner wrote:

> Podle meho nazoru neni pro uzivatele nutnost vlastnit licenci na
> programovaci jazyk "nepodstatna rutinka".

Licenci vlastnis ty, a nechas si to prelozit nekym, kdo ti poskutne
urcitou zaruku, ze to nezmrsi. Pak distribuujes svuj program se vsemi
lokalizacemi. Prekladatel ti samozrejme posle slovnik a nastaveni,
takze dalsi lokalizace si delas ty sam treba nejakym batchem.

> Navic si nemyslim, ze pokud potrebuji lokalizovat aplikaci, tak musim
> byt zrovna programator.

A psal jsem neco o tom, ze musi? To s tim nijak nesouvisi.
Lokalizator je udelan tak, aby ho zvladli i neprogramatori a aby
nepotreboval zadnou licenci na programovaci jazyk.

> On 31 Oct 2002 at 12:02, Martin Kleiner wrote:
> >> Ja si naopak myslim, ze metoda lokalizace pomoci textovych souboru
> >> je narozdil od DLL velice efektivni. Oproti DLL ma spoustu vyhod:
> >> -nemusi se kompilovat
>
> From: "Zbysek Hlinka" <hlinka@hlinka.cz>
> >> Nepodstatna rutinka.

S pozdravem

Zbysek Hlinka
E-mail: hlinka@hlinka.cz, localizator@localizator.com
Phone: +420 603 551 282

Odpovedá: Petr Fejfar

31. 10. 2002 14:12

From: "Petr Vones" <pvones@mbox.vol.cz>

> jako slovnik. Pri prekladu se pak vytvori resource
> only DLL s pouzitim techto dat.

No a ten preklad DLL, to je to, co firmu zbytecne zatezuje, protoze nejde
jen o preklad - zpravidla existuje nejaka sprava verzi, musis udelat novy
build, pred release ho musis testovat etc...

Zatimco kdyz to nechas vsechno v textovem souboru,
tak at s tim kazdy dela, co uzna za vhodne.
Ty jen muzes pozdeji nejake osvedcene preklady
zahrnout po domluve s jejich autorem do instalacky  

> problem jak rozume lokalizovat DFM aby to nebyla

Zakladni kostru jsem delaval pomoci dobreho editoru
a reg. expr. nad vsemi .DFM soubory v textovem tvaru.
Pripadne zmeny rucnim pridanim odpovidajiciho radku.



Bye, pf



---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.408 / Virus Database: 230 - Release Date: 24.10.2002

Odpovedá: Ing. Jan Dvorak

31. 10. 2002 14:52

V tomto pripade jde o jednoduchou GUI aplikaci - zavadeni a
zpracováni zdravotnickych dotazniku s vystupem pro
respondenta v jeho materskem jazyce. Obsahuje mnoho ruznych
formularu s mnoha popisy pro prepis dat (zatim manualni).
Texty by bylo mozne prevest do resourcestring. Je mozne v
realnem case, tj. pri behu programu tyto retezce zamenit,
pripadne jak?
Jan Dvorak

>
> Take zalezi na tom o jakou jde aplikaci, pokud je to
nejaky
> server ktery ma
> poskytovat pouze nejake hlaseni v ruznych jazycich (pak se
> asi nehodi vyse
> popsane reseni) tak je to neco uplne jineho nez typicka
GUI
> aplikace ktera se
> preklada cela.
>
> Petr Vones
>

Odpovedá: Martin Kleiner

31. 10. 2002 13:58

Prave tohle ti pridava praci a nuti te delat veci, ktere by vubec autor
programu delat nemusel a hlavne NEMEL.
Pokud udrzujes jednu aplikaci tak to zvladnes, ale pokud mas aplikaci vic,
tak za chvili nebudes delat nic jineho nez lokalizovat.

Co se tyka te zaruky odborneho prekladu, tak si myslim, ze je naopak vyhodou
pro uzivatele, kdyz si muze vybrat ten lokalizacni soubor, ktery mu vyhovuje
(napriklad od osvedceneho autora prekladu) a nemusi si nechat od tebe vnutit
pouze Tebou posvecene preklady.

Pouziji analogii na operacni system:
Pokud potrebuji napriklad znenit startovaci logo Windows, tak by se mi vubec
nelibilo,
pokud bych musel poslat bitmapu do firmy Microsoft a oni by mi poslali novou
verzi Windows se zapracovanou bitmapou.

Martin Kleiner

----- Original Message -----
From: "Zbysek Hlinka" <hlinka@hlinka.cz>
> Licenci vlastnis ty, a nechas si to prelozit nekym, kdo ti poskutne
> urcitou zaruku, ze to nezmrsi. Pak distribuujes svuj program se vsemi
> lokalizacemi. Prekladatel ti samozrejme posle slovnik a nastaveni,
> takze dalsi lokalizace si delas ty sam treba nejakym batchem.

Odpovedá: Zbysek Hlinka

31. 10. 2002 13:55

On 31 Oct 2002 at 13:35, Petr Fejfar wrote:

> From: "Petr Vones" <pvones@mbox.vol.cz>
>
> > problem jak rozume lokalizovat DFM aby to nebyla
>
> Zakladni kostru jsem delaval pomoci dobreho editoru
> a reg. expr. nad vsemi .DFM soubory v textovem tvaru.
> Pripadne zmeny rucnim pridanim odpovidajiciho radku.

No, to je prave ta hruza, ktera uspesne brani rozumne udrzbe. Jakmile
budes chtit zmenit usporadani okna a pripadne pridat nejake nove
prvky, je to v haji...

S pozdravem

Zbysek Hlinka
E-mail: hlinka@hlinka.cz, localizator@localizator.com
Phone: +420 603 551 282

Odpovedá: Zbysek Hlinka

31. 10. 2002 15:20

On 31 Oct 2002 at 13:44, Martin Kleiner wrote:

> Prave tohle ti pridava praci a nuti te delat veci, ktere by vubec
> autor programu delat nemusel a hlavne NEMEL. Pokud udrzujes jednu
> aplikaci tak to zvladnes, ale pokud mas aplikaci vic, tak za chvili
> nebudes delat nic jineho nez lokalizovat.

Pokud se nemeni texty, pak staci spustit jeden batak, a je
zlokalizovano.

> Co se tyka te zaruky odborneho prekladu, tak si myslim, ze je naopak
> vyhodou pro uzivatele, kdyz si muze vybrat ten lokalizacni soubor,
> ktery mu vyhovuje (napriklad od osvedceneho autora prekladu) a nemusi
> si nechat od tebe vnutit pouze Tebou posvecene preklady.

Pokud prodavas soft, na ktery poskytujes i zaruky, pak bych ti
doporucoval vyhybat se obloukem neproverenym prekladum. Pokud je
preklad pouze nejakou pridanou hodnotou, od ktere davas ruce pryc,
pak ano.

S pozdravem

Zbysek Hlinka
E-mail: hlinka@hlinka.cz, localizator@localizator.com
Phone: +420 603 551 282

Odpovedá: Martin Kleiner

31. 10. 2002 15:43

----- Original Message -----
From: "Zbysek Hlinka" <hlinka@hlinka.cz>

> Pokud se nemeni texty, pak staci spustit jeden batak, a je zlokalizovano.

Tady jde ale prave o to, ze ten batak musis spustit ty.
A pokud svuj program prestanes podporovat a nekdo potrebuje udelat preklad
treba do madarstiny, tak je v koncich.
Musi spolehat na tebe jestli se uracis prelozit DLL.

> Pokud prodavas soft, na ktery poskytujes i zaruky, pak bych ti
> doporucoval vyhybat se obloukem neproverenym prekladum. Pokud je
> preklad pouze nejakou pridanou hodnotou, od ktere davas ruce pryc, pak
ano.

Myslim, ze to vubec nesouvisi s tim jesli je software freeware nebo za
penize.
Navic preklad neni "pridana hodnota" ale konfigurace.
Kdyby takhle postupovali vsichni programatori, tak by nikdy nevzniknul
software, ktery prezije sveho autora  
Mozna by ani nevznikly zadne distribuce Linuxu, protoze by je musel vsechny
sestavovat Torvalds.

Odpovedá: Petr Fejfar

31. 10. 2002 17:37

From: "Zbysek Hlinka" <hlinka@hlinka.cz>

> No, to je prave ta hruza, ktera uspesne brani rozumne udrzbe. Jakmile
> budes chtit zmenit usporadani okna a pripadne pridat nejake nove
> prvky, je to v haji...

V haji ne - kdyz tech zmen bude vic, tak holt pro ten form smazu texty
a pomoci reg. expr. je z .DFM souboru vytvorim znovu. Pokud si to pamatuju,
tak jsou to zhruba 2 prikazy na kazdy typ textu u kazdeho typu komponenty,
napr. TLabel.Hint a TLabel.Caption + par prikazu pro zakladni naformatovani
.DFM

Tim mi vznikne soubor textu. Z toho pak jednim prikazem udelam tu sekci
Label1.Caption := LoadText(....); kterou vlozim do tela metody Localize u
formu
a je to (pokud to neni automatizovane pres RTTI, pak tento krok odpada)

Podotykam, ze pracuji s ME, ktery umi replace pres vice souboru najednou,
takze neni problem jednim prikazem vlozit napr. novy text do vsech
jazykovych verzi apod.

***

Uznavam, ze je to trochu nepohodlne, ale zase ne natolik, abych vymenil
spickovy editor za tool, na kterem pak budu zavisly.


Bye, pf







---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.408 / Virus Database: 230 - Release Date: 24.10.2002

Odpovedá: Petr Fejfar

31. 10. 2002 17:46

From: "Zbysek Hlinka" <hlinka@hlinka.cz>

> Pokud prodavas soft, na ktery poskytujes i zaruky, pak bych ti
> doporucoval vyhybat se obloukem neproverenym prekladum.

Meli jsme zakaznika, ktery pozadoval moznost menit texty
bez kompilace prave proto, aby mohl na zaklade odezvy svych zakazniku
tj. end useru texty zpresnovat:

a) obsluhou v real time - ty byly v DB a menili se z aplikace
b) administratorem - ty byly jako texty (a ze jich bylo - jen chybovych
hlaseni
z bankovniho systemu bylo pres 16 tisic)

> Pokud je preklad pouze nejakou pridanou hodnotou, od ktere davas ruce
pryc,

Obecne, kazdy preklad bude vyzadovat urcity stupen autorizace, je ale
otazka,
jestli zejmena u masove SW neni lepsi, at si to kutilove daji sami
dohromady.


Bye, pf




---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.408 / Virus Database: 230 - Release Date: 24.10.2002

Odpovedá: bardon

31. 10. 2002 16:24

Byla to dosti zajimava diskuse ale zda se mi, ze uz speje k zaveru. Ja jsem
si z toho udelal pro sebe tento zaver:

Nejvetsi vyhodou lokalizace v DLL je fakt, ze do ni nemuze jen tak nekdo
zasahovat.
Nejvetsi vyhodou lokalizace v textovem souboru je fakt, ze do ni muze
zasahovat kdokoli a jakkoli.

Zda se mi, ze opravdu zalezi pro koho ten program delam. Pro nejaky freeware
bych volil textove soubory, pro seriozni komercni aplikaci, za kterou chci
penize bych asi volil DLL (textovy soubor jen v pripade, ze je to aplikace
pro kutily, kteri si radi vsechno meni k obrazu svemu).

Z hlediska programovani je standardni mechanizmus Delphi a potazmo Windows
jednodussi. Takze textovy soubor bych asi pouzil jen kdybych k tomu mel
dobry duvod.

Myslim, ze jednoznacny zaver ze je vzdy lepsi to, nebo ono neni potrebny.
Necht si kazdy vybere podle svych predstav.

Odpovedá: Zbysek Hlinka

31. 10. 2002 16:48

On 31 Oct 2002 at 15:35, Martin Kleiner wrote:

> > Pokud se nemeni texty, pak staci spustit jeden batak, a je
> > zlokalizovano.
>
> Tady jde ale prave o to, ze ten batak musis spustit ty.
> A pokud svuj program prestanes podporovat a nekdo potrebuje udelat
> preklad treba do madarstiny, tak je v koncich. Musi spolehat na tebe
> jestli se uracis prelozit DLL.

Piseme oba o komercnich aplikacich, nebo mas na mysli neco jineho?

> Myslim, ze to vubec nesouvisi s tim jesli je software freeware nebo za
> penize. Navic preklad neni "pridana hodnota" ale konfigurace. Kdyby
> takhle postupovali vsichni programatori, tak by nikdy nevzniknul
> software, ktery prezije sveho autora   Mozna by ani nevznikly zadne
> distribuce Linuxu, protoze by je musel vsechny sestavovat Torvalds.

Ne, ne. Lokalizace neni vazana pouze na konkretni lokalizacni tool.
Uzivatel si muze udelat svou lokalizaci jakymkoliv nastrojem, ktery
mu to umozni. Lokalizacni DLL je obycejna DLL, ktera obsahuje
zlokalizovane resourcy. Pokud tohle uzivatel rozpozna (a neni to nic
tezkeho), muze si to nakonec zlokalizovat treba v nejakem resource
editoru.

S pozdravem

Zbysek Hlinka
E-mail: hlinka@hlinka.cz, localizator@localizator.com
Phone: +420 603 551 282

Odpovedá: Zbysek Hlinka

31. 10. 2002 17:43

On 31 Oct 2002 at 15:58, Petr Fejfar wrote:

> Obecne, kazdy preklad bude vyzadovat urcity stupen autorizace, je ale
> otazka, jestli zejmena u masove SW neni lepsi, at si to kutilove daji
> sami dohromady.

  Zalezi na aplikaci a cilove skupine zakazniku. Napriklad
ucetnictvi nelze s touto filosofii prodavat. Pokud ti pak bude volat
uzivatel na hot-line, ze mu program vyplivnul takovou a makovou
chybovou hlasku, jak ji najdes, kdyz lokalizace nepujde aspon kolem
tebe?

S pozdravem

Zbysek Hlinka
E-mail: hlinka@hlinka.cz, localizator@localizator.com
Phone: +420 603 551 282

Odpovedá: bardon

31. 10. 2002 17:40

Mam dotaz. Kdyz si to ten jeden zakaznik sam upresnil, ostatnim zakaznikum
jste to nedavali? Tem ostatnim stacily ty puvodni, nebo si to musel upresnit
kazdy sam a kazdy jinak?

-----Original Message-----
From: delphi-l-owner@clexpert.cz [mailto:delphi-l-owner@clexpert.cz]On
Behalf Of Petr Fejfar
Sent: Thursday, October 31, 2002 3:58 PM
Meli jsme zakaznika, ktery pozadoval moznost menit texty
bez kompilace prave proto, aby mohl na zaklade odezvy svych zakazniku
tj. end useru texty zpresnovat:

a) obsluhou v real time - ty byly v DB a menili se z aplikace
b) administratorem - ty byly jako texty (a ze jich bylo - jen chybovych
hlaseni
z bankovniho systemu bylo pres 16 tisic)


Odpovedá: Petr Fejfar

31. 10. 2002 18:17

From: "Zbysek Hlinka" <hlinka@hlinka.cz>

> chybovou hlasku, jak ji najdes, kdyz lokalizace nepujde aspon kolem
> tebe?

Jak jsem psal v jinem threadu (Lokalizace IB a FB): spravne je oddelit
lokalizovana uzivatelska hlaseni od nelokalizovanych systemovych,
ktere jdou jen do logu, ze ktereho je navic videt kontext, ve kterem se
chyba
vyskytla.


Bye, pf




---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.408 / Virus Database: 230 - Release Date: 24.10.2002

Odpovedá: Zbysek Hlinka

31. 10. 2002 18:17

On 31 Oct 2002 at 15:50, Petr Fejfar wrote:

> Podotykam, ze pracuji s ME, ktery umi replace pres vice souboru
> najednou, takze neni problem jednim prikazem vlozit napr. novy text do
> vsech jazykovych verzi apod.
>
> ***
>
> Uznavam, ze je to trochu nepohodlne, ale zase ne natolik, abych
> vymenil spickovy editor za tool, na kterem pak budu zavisly.

Jasne. Uplne staci zavislost na ME a Delphi, ze?  

S pozdravem

Zbysek Hlinka
E-mail: hlinka@hlinka.cz, localizator@localizator.com
Phone: +420 603 551 282

Odpovedá: Petr Fejfar

31. 10. 2002 17:10

From: "bardon" <bardon@akord-soft.cz>

> Mam dotaz. Kdyz si to ten jeden zakaznik sam upresnil, ostatnim zakaznikum
> jste to nedavali? Tem ostatnim stacily ty puvodni, nebo si to musel
upresnit
> kazdy sam a kazdy jinak?


Ne nedavali. Jednim zakaznikem byla napr. instituce s pobockami po celem
svete a oni jaku soucast instalacky dostali nejaky nami dodany tvar a pak si
to nezavisle v jednotlivych narodnich pobockach menili podle vlastniho
uvazeni.

Kdyz jsme dodali tentyz system jinemu zakaznikovi, mel uplne jine hlaseni,
jina menu apod - zkratka byl pro nej customizovan - pro zajimavost v
run-time,
ne pomoci podminenho prekladu.


Bye, pf




---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.408 / Virus Database: 230 - Release Date: 24.10.2002

Odpovedá: Zdenek Stepanek

31. 10. 2002 17:50

> Myslim, ze to vubec nesouvisi s tim jesli je software freeware nebo za

> penize. Navic preklad neni "pridana hodnota" ale konfigurace. Kdyby
> takhle postupovali vsichni programatori, tak by nikdy nevzniknul
> software, ktery prezije sveho autora   Mozna by ani nevznikly zadne
> distribuce Linuxu, protoze by je musel vsechny sestavovat Torvalds.

Ne, ne. Lokalizace neni vazana pouze na konkretni lokalizacni tool.
Uzivatel si muze udelat svou lokalizaci jakymkoliv nastrojem, ktery
mu to umozni. Lokalizacni DLL je obycejna DLL, ktera obsahuje
zlokalizovane resourcy. Pokud tohle uzivatel rozpozna (a neni to nic
tezkeho), muze si to nakonec zlokalizovat treba v nejakem resource
editoru.

***Tohle znam dobre, taky jsem takhle konfigurioval/prekladal programy.
Pokud se napise nejaky tool, ktery z DLL vytaha texty, uzivatel je
prepise na pozadovany jazyk a chytry tool to zase nacpe do te puvodni
DLL, tak jaky je pak rozdil v textovem konfiguracnim/lokalizacnim
souboru a DLL. Ja bych se spis zabyval otazkou rychlosti. Viz duvod
preferovani registru pred INI souborem.

Zdenek

Odpovedá: Martin Kleiner

31. 10. 2002 18:36

V zadnem pripade jsem samozrejme nemluvil o praci s INI filem.
Ten je neskutecne pomaly a navic se chova odlisne na Win9x a WinNT.

Martin Kleiner

----- Original Message -----
From: "Zdenek Stepanek" <webmaster@rokaglass.com>

> ***Tohle znam dobre, taky jsem takhle konfigurioval/prekladal programy.
> Pokud se napise nejaky tool, ktery z DLL vytaha texty, uzivatel je
> prepise na pozadovany jazyk a chytry tool to zase nacpe do te puvodni
> DLL, tak jaky je pak rozdil v textovem konfiguracnim/lokalizacnim
> souboru a DLL. Ja bych se spis zabyval otazkou rychlosti. Viz duvod
> preferovani registru pred INI souborem.
>
> Zdenek

Odpovedá: Martin Kleiner

31. 10. 2002 18:37

Samozrejme ze mluvim i o komercnich aplikacich.
Pokud je aplikace za penize tak to prece neznamena ze je uzivatelsky
nekonfigurovatelna.

Martin Kleiner

----- Original Message -----
From: "Zbysek Hlinka" <hlinka@hlinka.cz>
> Piseme oba o komercnich aplikacich, nebo mas na mysli neco jineho?


Odpovedá: Martin Kleiner

31. 10. 2002 20:11

Nevim nevim jestli bezny uzivatel bude pracovat s resouce editorem.
Navic je tu samozrejme otazka behu na ruznych operacnich systemech.
V tom pripade je cela lokalizacni DLL uplne na nic.

Martin Kleiner

----- Original Message -----
From: "Zbysek Hlinka" <hlinka@hlinka.cz>
> Ne, ne. Lokalizace neni vazana pouze na konkretni lokalizacni tool.
> Uzivatel si muze udelat svou lokalizaci jakymkoliv nastrojem, ktery
> mu to umozni. Lokalizacni DLL je obycejna DLL, ktera obsahuje
> zlokalizovane resourcy. Pokud tohle uzivatel rozpozna (a neni to nic
> tezkeho), muze si to nakonec zlokalizovat treba v nejakem resource
> editoru.


Odpovedá: Ing. Jan Dvorak

1. 11. 2002 12:47

Dekuji vsem za namety.
Diskuze zabredla do hlubsich uvah nez jsem ocekaval pri
formulaci puvodniho dotazu. Dovolim si vratit se zpet na zem
a reagovat na nektere namety.

Zbysek Hlinka napsal:

> Efektivnejsi je napsat cely program v jednom jazyce, a pak
pridavat
> jen lokalizovane (dll) soubory. Ukazku najdes v
Demos\RichEdit.
> Delphi si umi natahnout tu spravnou lokalizaci, a pak ji
pouzivat. Je
> vsak treba davat pozor na urcity druh komponent, VCL
nezvlada jejich
> reload za behu programu. Pokud pouzijes vhodny lokalizacni
nastroj,
> pak prekladas jen napoprve, dalsi lokalizace vkladaji
preklady na
> spravne misto automaticky, muzes si nastavit i sirku
komponent pro
> ruzne dlouhe preklady a podobne. Kompilovat knihovnu
prekladu je
> nutne po kazde kompilaci programu, ale to je vetsinou
automaticka
> rutina.

Prosel jsem si odkazovany priklad a zpusob s dll se mi pro
danou aplikaci nezamlouva. Asi bych jej i tezko realizoval
nemaje potrebne nastroje (elm60.exe) dostupne pouze ve verzi
Enterprice (mam D6Prof). Pouziti lokalizacniho nastroje je
prijatelnejsi alternativa, avsak pracnost pro programatora
se presouva z design time na pozdejsi dobu a nasobi se
poctem lokalizaci. Nedovedu si predstavit, jak bych vyskolil
prekladatele v jine zemi z anglictiny do jineho evropskeho
jazyka na pouziti lokalizatoru. Asi bych mu musel predlozit
texty a on by je prelozil, ja bych je pak musel vlozit do
lokalizatoru. Jenomze to uz je ten krok pro mne navic. Proto
jsem se priklanel k pouziti textoveho souboru. S autentizaci
prekladu si starosti nedelam, ani bych ji ve vetsine pripadu
nemohl provest.

Petr Fejfar napsal:
> V run-time musis pri konstrukci formulare zajistit
> nastaveni odpovidajicich property. To muzes
> udelat bud rucne napr.
>
> Label1.Caption := LoadText('lab1capt');
> Label1.Hint := LoadText('lab1hint');
>
> a nebo to muzes nejak zautomatizovat napr.
> vhodnym pojmenovanim textu napr.
>
> <JmenoFormu>.<JmenoPrvku>.<TypTextu>
>
> napr.
>
> 'Form1.Label1.Caption'
>
> a pak projit vsechna controls na formu
> a nacist pro ne vsechny odpovidajici texty.

Snad by k tomuto ucelu slo pouzit vlastnosti Tag. Dale
napsal:

>
> U ostatnich textu jako chybova hlaseni, dotazy aj.
> primo zavolas LoadText(xxxx).
>
> Zbyva otazka, jak efektivne implementovat ten message pool
a metodu
> LoadText(xxxx). Ale to zalezi
> na poctu textu popr. dalsich na pozadavcich.

V teto souvislosti se chci dotazat, zda existuje vhodnejsi
zpusob nez je TIniFile resp. TMemIniFile?
Neni nejaky vhodny nastroj na lokalizaci v Jvcl?
Dekuji predem za odpovedi.
Ing. Jan Dvorak

Odpovedá: Zbysek Hlinka

2. 11. 2002 0:11

On 1 Nov 2002 at 12:43, Ing. Jan Dvorak wrote:

> Prosel jsem si odkazovany priklad a zpusob s dll se mi pro
> danou aplikaci nezamlouva. Asi bych jej i tezko realizoval
> nemaje potrebne nastroje (elm60.exe) dostupne pouze ve verzi
> Enterprice (mam D6Prof). Pouziti lokalizacniho nastroje je
> prijatelnejsi alternativa, avsak pracnost pro programatora
> se presouva z design time na pozdejsi dobu a nasobi se
> poctem lokalizaci. Nedovedu si predstavit, jak bych vyskolil
> prekladatele v jine zemi z anglictiny do jineho evropskeho
> jazyka na pouziti lokalizatoru. Asi bych mu musel predlozit
> texty a on by je prelozil, ja bych je pak musel vlozit do
> lokalizatoru. Jenomze to uz je ten krok pro mne navic. Proto
> jsem se priklanel k pouziti textoveho souboru. S autentizaci
> prekladu si starosti nedelam, ani bych ji ve vetsine pripadu
> nemohl provest.

Lokalizacni tool v D6 E je na dve veci, protoze neresi problemy, o
kterych napisu za chvilku. Stejne problemy neresi ani externi textovy
soubor.

1. VCL pouziva mnozinu textu, ktere se objevuji pri nekterych
chybach. Klasicky napriklad deleni nulou. Pokud bys chtel pokryt
vsechny tyto pripady, musel bys v programu odchytavat vsechny tyto
hlasky a prekryt je vlastnimi.

2. Nektere knihovny obsahuji vlastni formulare (napriklad
QuickReport). Pokud takovy formular zavolas, mas s lokalizaci v
externim souboru smulu. K nekterym takovym formularum nemusi byt
dostupny zdrojak, abys to mohl prepsat.

3. Nemuzes pouzivat standardni balicky, tam s tim nehnes.

Jazykovy Lokalizator vsechny tyto problemy resi, protoze taha
resourcy primo z binaru, takze mu nic z predesleho nemuze utect. Ty
sam si musis rozvazit, zda tvoje aplikace na uvedene problemy narazi
nebo ne, a jak je budes resit.

S pozdravem

Zbysek Hlinka
E-mail: hlinka@hlinka.cz, localizator@localizator.com
Phone: +420 603 551 282

Odpovedá: Martin Kleiner

1. 11. 2002 23:52

Ja pouzivam sortovany TStringList a hodnoty hledam metodou Find.
V Items mam ulozene indexy textu(popripade nejaky jiny identifikacni
retezec) a vlastni text nam ulozen pomoci property Objects.
Pro snazsi praci mam udelaneho potomka TStringListu s public metodami pro
zapis a cteni podle hodnoty nebo indexu.
Pristup je velice rychly. (Oproti TIniFilu nebo TStringListu, kde se
dohledava hodnota pomoci Values['']).
Mas-li zajem muzu poslat.

Martin Kleiner

----- Original Message -----
From: "Ing. Jan Dvorak" <dvorak@szu.cz>
> V teto souvislosti se chci dotazat, zda existuje vhodnejsi
> zpusob nez je TIniFile resp. TMemIniFile?

Odpovedá: Petr Fejfar

2. 11. 2002 0:14

From: "Ing. Jan Dvorak" <dvorak@szu.cz>

> Snad by k tomuto ucelu slo pouzit vlastnosti Tag.

Sure, mohl bys zpravy ocislovat a pak nastavit Tag na toto cislo. Ale to je
pracnejsi, protoze ty budes muset nastrkat do vsech controls *spravna* cisla
a jeste
k cislum sepsat texty. Navic se zbavis moznosti pouzit Tag napr. pro Help
Context resp. k jinym ucelum.

***

Kdyz Message ID odvodis od jmena formu/componenty/property, tak dostanes
jmeno, ktere je v projektu unikatni. Seznam jmen na formu muzes pripravit
napr. pomoci reg. expr. z textove podoby
.DFM souboru vcetne textu, ktere jsi nastrkal do controls v IDE. Cele se to
bude jednodusseji udrzovat.

> V teto souvislosti se chci dotazat,
> zda existuje vhodnejsizpusob nez
> je TIniFile resp. TMemIniFile?

My na to mame vlastni DLL, ktera se pri startu aplikace porozhledne po disku
a vybere soubory s priponami, odpovidajicimi ISO kodu zemi, napr. CZ,DE,SK
etc....

Zpravidla kazdy takovy soubor obsahuje direktivy
include se soubory, odpovidajicimi jednotlivym
modulum apod. a komentar, napr.
;
; version 3.00.003 released 25.10.2001 16:12 by pf
;
#include EMBMTE.EN
#include EMBCHI.EN
#include EMBCHS.EN
#include EMBCHU.EN
#include EMBWKS.EN

Ostatni soubory jsou obycejne textove soubory ve formatu <JmenoTextu>=<Text>
popr. komentar, napr.

U_CHICOM0001=There seems to be a problem. Please ..
ES0700=Unknown error during transaction ...
EU0700=@(U_CHICOM0001)
ES0701=Unable to pick-up a text message from ...
EU0701=@(U_CHICOM0001)
ES0702=There is no response from the host [%s/%s]
ES0706=Unable to pick-up a LIF message from ...
EU0706=Sorry, currently there is no info about ...

Pozn.

V jinem threadu jsem se zminoval o oddeleni zprav pro
uzivatele a administratora, coz je zde videt - systemove zpravy ESxxxx vyse
jsou namapovany prostrednictvim zprav s prefixem EUxxxx na spolecne hlaseni
U_CHICOM00001

***

DLL si nacte vsechny texty ve vsech jazycich a vytvori si k nim index,
vyresi crossreference mezi jazyky, vypise do logu warnings, ktera hlaseni v
jakych jazycich chybi a vsechny texty si ulozi to pracovniho souboru -
message pool.

Pri dalsim startu aplikace zkontroluje casy vsech souboru a jestlize se
lisi, tak automaticky rebuildne
soubor s message pool.

***

Aplikace s tim pak pracuje pomoci nekolika funkci, napr.

function GetTextByName
  (const aLanguage,aTxtName:ShortString): AnsiString;
function GetTextByCode
  (const aLanguage,aPrefix:ShortString; aCode:integer)
   :AnsiString;
function GetUsrErrByCode
  (const aLanguage:ShortString; aCode:integer)
  : AnsiString;
function GetSysErrByCode
  (const aLanguage:ShortString; aCode:integer)
  : AnsiString;

etc...


HTH, pf




---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.408 / Virus Database: 230 - Release Date: 24.10.2002

Odpovedá: Petr Fejfar

3. 11. 2002 23:35

From: "Zbysek Hlinka" <hlinka@hlinka.cz>

> Lokalizacni tool v D6 E je na dve veci, protoze neresi problemy, o
> kterych napisu za chvilku. Stejne problemy neresi ani externi textovy
> soubor.
>
> 1. VCL pouziva mnozinu textu, ktere se objevuji pri nekterych
> chybach. Klasicky napriklad deleni nulou. Pokud bys chtel pokryt
> vsechny tyto pripady, musel bys v programu odchytavat vsechny tyto
> hlasky a prekryt je vlastnimi.
> 2. Nektere knihovny obsahuji vlastni formulare .... [snip]
> 3. Nemuzes pouzivat standardni balicky .... [snip]

To nejsou problemy, to je stale jen jeden problem: chybny error recovery
subsystem v aplikaci resp. aplikacnim frame worku. Spravne je
kazdou vyjimku osetrit na odpovidajici urovni abstrakce:

    a) Tvuj kod musi rozhodovat o tom, jak zavazna chyba v danem kontextu
je,
        jak ji zotavit, jak ji presentovat popr. logovat ci archivovat
    b) kdyz Tvuj kod rozhodne, ze je nutne chybu presentovat uzivateli,
        tak ji bude presentovat pomoci presentacni vrstvy v Tvoji aplikaci,
        ktera ma pod kontrolou i volbu jazyka

Takze pokud mas napsanou aplikaci "ciste", muze Ti byt ukradene, v jakem
jazyce jsou texty u exception generovanych vrstvami/objekty 3rd part
provenience.

Bye, pf




---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.408 / Virus Database: 230 - Release Date: 24.10.2002

Odpovedá: Zbysek Hlinka

4. 11. 2002 8:23

On 3 Nov 2002 at 22:56, Petr Fejfar wrote:

> > Lokalizacni tool v D6 E je na dve veci, protoze neresi problemy, o
> > kterych napisu za chvilku. Stejne problemy neresi ani externi
> > textovy soubor.
> >
> > 1. VCL pouziva mnozinu textu, ktere se objevuji pri nekterych
> > chybach. Klasicky napriklad deleni nulou. Pokud bys chtel pokryt
> > vsechny tyto pripady, musel bys v programu odchytavat vsechny tyto
> > hlasky a prekryt je vlastnimi. 2. Nektere knihovny obsahuji vlastni
> > formulare .... [snip] 3. Nemuzes pouzivat standardni balicky ....
> > [snip]
>
> To nejsou problemy, to je stale jen jeden problem: chybny error
> recovery subsystem v aplikaci resp. aplikacnim frame worku. Spravne je
> kazdou vyjimku osetrit na odpovidajici urovni abstrakce:

Ne, to neni jeden problem, ale nejmene problemy dva. Formular neni
chybova hlaska, a prave s cizimi formulari jsou nejvetsi problemy pri
lokalizaci pres soubor, ale take v ITE.

S pozdravem

Zbysek Hlinka
E-mail: hlinka@hlinka.cz, localizator@localizator.com
Phone: +420 603 551 282

Odpovedá: Petr Fejfar

4. 11. 2002 18:00

From: "Zbysek Hlinka" <hlinka@hlinka.cz>

> Ne, to neni jeden problem, ale nejmene problemy dva. Formular neni
> chybova hlaska, a prave s cizimi formulari jsou nejvetsi problemy pri
> lokalizaci pres soubor, ale take v ITE.

Mas pravdu, prehledl jsem ty formulare, nejspis proto, ze osobne
by me nikdy nenapadlo pouzit 3rd party formular ve vlastni aplikaci.

Bye, pf



---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.408 / Virus Database: 230 - Release Date: 25.10.2002

Odpovedá: Zbysek Hlinka

4. 11. 2002 18:05

On 4 Nov 2002 at 10:05, Petr Fejfar wrote:

> > Ne, to neni jeden problem, ale nejmene problemy dva. Formular neni
> > chybova hlaska, a prave s cizimi formulari jsou nejvetsi problemy
> > pri lokalizaci pres soubor, ale take v ITE.
>
> Mas pravdu, prehledl jsem ty formulare, nejspis proto, ze osobne by
> me nikdy nenapadlo pouzit 3rd party formular ve vlastni aplikaci.

Mnoho lidi pouziva tiskove sestavy Sinea, tam se cizim formularum
vyhyba obtizne. Jini pouzivaji QReport, tam je take cizich formularu
dost. Jak resis tisky ty?

S pozdravem

Zbysek Hlinka
E-mail: hlinka@hlinka.cz, localizator@localizator.com
Phone: +420 603 551 282

Odpovedá: Petr Fejfar

4. 11. 2002 18:31

From: "Zbysek Hlinka" <hlinka@hlinka.cz>

> Mnoho lidi pouziva tiskove sestavy Sinea, tam se cizim formularum
> vyhyba obtizne. Jini pouzivaji QReport, tam je take cizich formularu
> dost. Jak resis tisky ty?

Nejsme datari, tak zadne DB reporty netiskneme.

Bye, pf



---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.408 / Virus Database: 230 - Release Date: 25.10.2002

Odpovedá: Petr Fejfar

4. 11. 2002 18:56

From: "Zbysek Hlinka" <hlinka@hlinka.cz>

> Mnoho lidi pouziva tiskove sestavy Sinea, tam se cizim formularum
> vyhyba obtizne. Jini pouzivaji QReport, tam je take cizich formularu
> dost. Jak resis tisky ty?

Jeste snad malou poznamku k tem tiskum obecne - zpravidla je resime
pres HTML viewer, protoze IMHO rendering HTML dokumentu je
nejflexibilnejsi z toho, co jsem videl.

Pouzivame na to "neviditelnou" instanci Baldwinova komercniho vieweru.
(www.pbear.com). Je-li treba, format hodnoty se da predepsat atributem
u tagu., takze layout je pak zcela otevren ke customizaci i k lokalizaci.

Pokud to potrebujeme naopak drzet zavrene, tak ty HTML dokumenty nastrkame s
heslem do naseho proprietarniho archivatoru.


Bye, pf



---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.408 / Virus Database: 230 - Release Date: 25.10.2002

Odpovedá: Ludek ZITA

5. 11. 2002 0:12


----- Original Message -----
From: "Petr Fejfar" <development@callnet.cz>
> Jeste snad malou poznamku k tem tiskum obecne - zpravidla je resime
> pres HTML viewer, protoze IMHO rendering HTML dokumentu je
> nejflexibilnejsi z toho, co jsem videl.

Ahoj.
Nevim presne zda se to da srovnat, ale jeden zakaznik pouziva intranetovy
IS, ktery tiskne pres IE a velkym problemem jsou mnohostrankove tisky,
protoze IE uz pro zobrazeni sezere sys. prostredky jako blazen a pak jese
jednou to same pro tisk a i kdyz je to na PC se 128 MB RAM a W2000 tak to
zbuchne na nedostatek systemovych prostredku. Ale mozna je to tim IE.

Ludek

Odpovedá: Ing. Jan Dvorak

6. 11. 2002 13:18

P. Vones napsal:

> Asi by bylo dobre oddelit format souboru pro lokalizaci a
pak
> vlastni pouziti
> techto dat v aplikaci. Nikdo asi nebude primo editovat DLL
v
> Notepadu   a
> napriklad ten system lokalizace ktery je v Delphi umoznuje
> vsechny texty
> exportovat do XML, tento soubor prelozit (treba i do vice
> jazyku) a pouzit jej
> jako slovnik. Pri prekladu se pak vytvori resource only
DLL s
> pouzitim techto
> dat. Zbyskouv Lokalizator je taky zalozen na stejnem
> principu. Samozrejme lze
> vybudovat ruzne dalsi systemy zalozene treba na RTTI, ale
> pokazde je tam
> problem jak rozume lokalizovat DFM aby to nebyla nejaka
> hruza. V Delphi 6+ je
> k dispozici i editor kterym muze nekdo jiny provadet
preklad
> souboru pro
> lokalizaci, aniz by si musel instalovat cele Delphi.
>
> Petr Vones
>

Patral jsem po zminenem editoru, bohuzel jsem jej nenasel.
Jak se jmenuje a kde lezi pro D6P?
Jan Dvorak

Odpovedá: Petr Vones

6. 11. 2002 16:23

From: "Ing. Jan Dvorak" <dvorak@szu.cz>
> Patral jsem po zminenem editoru, bohuzel jsem jej nenasel.
> Jak se jmenuje a kde lezi pro D6P?

Pouze v Enterprise/Architect verzi.

Petr Vones

Odpovedá: Ing. Vladimir Keder

11. 11. 2003 23:50

Ahoj

   Pouzivam taku istu metodu na nacitanie titulkov aj ked to asi nie je
najlepsie riesenie. Iste lepsie je pouzit Lokalizator Zbyska Hlinku ale pre
moje potreby staci aj taketo riesenie. Ja pouzivam pre kazdu komponentu
zvlast if pretoze okrem Caption nastavujem aj property Text, ... Takisto
nacitam aj dialogy ktore sa potom zobrazuju uzivatelovi.

Vlado

procedure TfrmMain.NacitajTitulky(Formular: TForm);
var AppIni: TIniFile;
begin
  AppIni :=
TIniFile.Create(ExtractFilePath(ExpandUNCFileName(Application.EXEName))+jazy
k);
     {titulok aplikacie}
  Formular.Caption:= AppIni.ReadString(Formular.Name,'caption', 'Program');
     {titulky tlacidiel, ...}
  for i:= 0 to Formular.ComponentCount-1 do
  begin
    if Formular.Components[i] is TLabel then
      TLabel(Formular.Components[i]).Caption:=
AppIni.ReadString(Formular.Name,TLabel(Formular.Components[i]).Name, '');
   ... //dalsie pouzite komponenty ktore chcem nastavit radioButton,
ListView, tlacitka, PopUpMenu, StringGrid, ...
  end;
  AppIni.Free;
end;

> [Form1]
> Form1=My program
> Soubor1=File
> Konec1=End
> Nastaven1=Setting
>
> Pak bych udelal jednoduchy cyklus ve FormCreate, kde bych nacetl vsechny
> Caption komponent, abych to nemusel otrocky vypisovat. Myslenka je takova,
> ze by to projelo vsechny komponenty a podle Name by to naslo prislusny






----------
* www.inMail.sk - Vasa emailova adresa na cely zivot ZDARMA
* Mail neobsahuje virusy. Zkontrolovane antivirusom NOD32 (www.eset.sk)
* www.SlovakNET.sk - profesionalny webhosting, domena .SK ZADARMO
* Zoner Media Explorer 5 - stiahnite si pomocnika pre digitalnu fotografiu
(zme.zoner.sk)

Odpovedá: Petr Zahradnik

11. 11. 2003 23:52

Puvodni zprava ze dne 11.11.2003:

> chci udelat vicejazycnou aplikaci. napadlo me, ze bych mohl vytvorit ini
> soubory s jednotlivymi jazykovymi verzemi. Tam by se skupina jmenovala
> stejne jako Form, nazev by byl Name komponenty a hodnota vlastni prekladane
> slovo, tady Caption. Asi takhle

Mnoho jednodussich programu jsem videl takto pracovat. Jsou na to snad
i nejake komponenty. Nicmene to podle me neni zrovna idealni reseni.
Neni mnohem lepsi pouzit to, co je v Delphi jiz vestavene, tedy
podpora lokalizace? Primo Delphi to podporuje, muzes si delat preklady
resources a davat je k aplikaci. Da se to pak velmi elegantne udelat
zvenku pomoci Jazykoveho Lokalizatoru, cimz navic usetris spousty casu
pri opakovanych prekladech.

Petr Zahradnik, pocitacovy expert

==========================================================
Petr Zahradnik, Computer Laboratory
Obvodova 740/14, 400 07 Usti nad Labem
telefon: 475 501 627, mobil: 602 409 601, fax: 475 511 338
web: http://www.clexpert.cz, e-mail: clexpert@clexpert.cz
ICQ: 21215917, MSN: clexpert@clexpert.cz
==========================================================
 





----------
* www.inMail.sk - Vasa emailova adresa na cely zivot ZDARMA
* Mail neobsahuje virusy. Zkontrolovane antivirusom NOD32 (www.eset.sk)
* www.SlovakNET.sk - profesionalny webhosting, domena .SK ZADARMO
* Zoner Media Explorer 5 - stiahnite si pomocnika pre digitalnu fotografiu
(zme.zoner.sk)

Odpovedá: Jan Fiala

12. 11. 2003 5:28

11.11.2003 Petr Zahradnik:
> Puvodni zprava ze dne 11.11.2003:

>> chci udelat vicejazycnou aplikaci. napadlo me, ze bych mohl vytvorit ini
>> soubory s jednotlivymi jazykovymi verzemi. Tam by se skupina jmenovala
>> stejne jako Form, nazev by byl Name komponenty a hodnota vlastni prekladane
>> slovo, tady Caption. Asi takhle

> Mnoho jednodussich programu jsem videl takto pracovat. Jsou na to snad
> i nejake komponenty. Nicmene to podle me neni zrovna idealni reseni.
> Neni mnohem lepsi pouzit to, co je v Delphi jiz vestavene, tedy
> podpora lokalizace? Primo Delphi to podporuje, muzes si delat preklady
> resources a davat je k aplikaci. Da se to pak velmi elegantne udelat
> zvenku pomoci Jazykoveho Lokalizatoru, cimz navic usetris spousty casu
> pri opakovanych prekladech.

1. ne kazdy ma Enterprise verzi Delphi, ktera opbsahuje
integrovany lokalizator.
2. pokud je lokalizace v textovem souboru, muze ti to prelozit kazdy,
bez nutnosti vlastnit jakekoliv nastroje a bude to pracovat okamzite.
Nemusi se nic prekladat.
3. opakovany preklad ? Pokud to budes mit v externim textovem souboru,
neprekladas nic opakovane, pouze do nej pridavas dalsi retezce.

Ale tohle reseni se hodi pouze na jednodussi aplikace. Nikdo nebude
takto prekladat MB textu.

--
Jan Fiala
mailto:jan.fiala@wo.cz





----------
* www.inMail.sk - Vasa emailova adresa na cely zivot ZDARMA
* Mail neobsahuje virusy. Zkontrolovane antivirusom NOD32 (www.eset.sk)
* www.SlovakNET.sk - profesionalny webhosting, domena .SK ZADARMO
* Zoner Media Explorer 5 - stiahnite si pomocnika pre digitalnu fotografiu
(zme.zoner.sk)

Odpovedá: Zbysek Hlinka

12. 11. 2003 9:51

On 11 Nov 2003 at 23:08, Josef Straka wrote:

> for A:= 0 to Form1.Components.Count -1 do
> Form1.Components[A].Caption :=
> ini2.ReadString('Form1',Form1.Components[A].Name,'...'));

To je samozrejme spatne. Zkus to takto: nadefinuj si jmeno objektu,
nazev property a jeji obsah. Napriklad:
<TvujObjName>
  <Caption Value="tvuj text" />
  <Text Value="bla bla" />
</TvujObjName>

V programu pak projdes vsechny komponenty, dohledas v seznamu, zda
tam je komponenta zastoupena (zde podle if Components[A].Name =
TvujObjName) a pak projdes vnitrek a priradis komponente prislusne
vlastnosti
SetStrProp(Instance, PropInfo, StrValue);

Kde Instance je ta komponenta, PropInfo nazev vlastnosti (treba
Caption), a StrValue je text schovany ve Value. Nazev property vsak
musi bezpodminecne korespondovat, nebo to musis obalit try except.

Je to ale docela pakarna, pro narocnejsi aplikace se to nehodi.

S pozdravem

Zbysek Hlinka
E-mail: hlinka@hlinka.cz
Phone: +420 603 551 282





----------
* www.inMail.sk - Vasa emailova adresa na cely zivot ZDARMA
* Mail neobsahuje virusy. Zkontrolovane antivirusom NOD32 (www.eset.sk)
* www.SlovakNET.sk - profesionalny webhosting, domena .SK ZADARMO
* Zoner Media Explorer 5 - stiahnite si pomocnika pre digitalnu fotografiu
(zme.zoner.sk)

Odpovedá: Ing. Antonin Spurny

12. 11. 2003 12:31

Puvodni zprava ze dne 11.11.2003 od Josef Straka <strakajosef@seznam.cz>

> D5Prof SP1, W98SE
>
> Prijemny den,
> chci udelat vicejazycnou aplikaci. napadlo me, ze bych mohl vytvorit ini
> soubory s jednotlivymi jazykovymi verzemi. Tam by se skupina jmenovala

Ahoj,

Podobny problem jsem uz resil. (Staci prelozit ini a hned je verze s jinym
jazykem) Podobne jaky Ty pomoci .ini souboru. (Ale v D2). A problem jsem
resil pomoci funkci, ktere umeli vratit v textove podobe hodnotu vlastnosti
tridy a naopak bez ohledu na tridu.
Projel jsem formular cyklem prez vsechny komponenty a zjistoval jsem obsahy
tech vlastnosti, ktere me zajimaly (Text, Caption, Hint), a to u kazde
komponenty bez ohledu na to jestli ji ta komponenta ma nebo ne. Nejvetsi
problem bylo jednoznacne jmeno komponenty (Name), protoze na formu se cas od
casu najdou komponenty, ktere nemaji jmeno  . (Pouzil jsem jmeno tridy a
za ni poradove cislo.) Pokud jsem u nektere komponenty nechtel hodnotu
nastavovat, pouzil jsem jako rozlisovaci znak prazdny retezec nebo urcitou
hodnotu ve vlastnosti Tag.
Jo a Retezcove konstanty, ktere jsem potreboval prelozit jsem ukladal do
labelu nekam, kde nebyly videt.  
Pozor, pri spusteni programu se nacita jazykova verze z ini souboru, a to
chvili trva.
Samozrejme jsem tam mel proceduru, ktera mi na pozadani sestavila vychozi
ini soubor.

Pokud budes mit zajem, mohu uverejnit casti zdroje.





----------
* www.inMail.sk - Vasa emailova adresa na cely zivot ZDARMA
* Mail neobsahuje virusy. Zkontrolovane antivirusom NOD32 (www.eset.sk)
* www.SlovakNET.sk - profesionalny webhosting, domena .SK ZADARMO
* Zoner Media Explorer 5 - stiahnite si pomocnika pre digitalnu fotografiu
(zme.zoner.sk)